import { isAuth } from '../utils/auth'
import { Route, Redirect } from 'react-router-dom'

function AuthRoute ({ component: Cp, ...rest }) {
  // console.log('结构接收剩余属性：', rest)
  return (
    <Route
      // path={path}
      // 除了component属性之外的父传子属性，全部都传给Route组件
      {...rest}
      render={(props) => {
        // console.log('路由对象', props)
        /**
         * 需求：判断是否登录，没有登录跳回登录页
         * 1. 根据本地是否存储有token
         * 2. 有：正常访问 | 没有：跳回登录页
         */
        if (!isAuth()) {
          //  === 没有登录,重定向到登录页 ===
          return (
            <Redirect
              // to(push | replace 方法) 重定向的目标：'页面path' | {pathname跳转页面,state带参数}
              to={{
                pathname: '/login',
                state: {
                  // 当前访问页面的地址：props.location.pathname => 目的：下次登录成功，还能回到上次访问页面
                  from: props.location.pathname,
                },
              }}
            />
          )
        }
        // === 登录过 ===
        return <Cp />
      }}
    />
  )
}


export default AuthRoute